import { defineStore } from 'pinia' // 定义容器

//useStore是容器名唯一
export const useMain = defineStore('useStore', {
  /**
   * 存储全局状态
   * 1.必须是箭头函数: 为了在服务器端渲染的时候避免交叉请求导致数据状态污染
   * 和 TS 类型推导
   */
  state: () => {
    return {
      count: 0,
      money: 22
    }
  },
  /**
   * 用来封装计算属性 有缓存功能  类似于computed
   */
  getters: {
    addmoney: state => {
      return state.count + 10
    }
  },
  /**
   * 编辑业务逻辑  类似于methods
   */
  actions: {
    addList() {
      this.count++
    }
  }
  // persist: {
  //   enabled: true, // 开启缓存  默认会存储在本地localstorage
  //   strategies: [
  //     {
  //       // 自定义存储的 key，默认是 store.$id
  //       key: 'custom storageKey',
  //       // 可以指定任何 extends Storage 的实例，默认是 sessionStorage
  //       storage: sessionStorage
  //       // state 中的字段名，按组打包储存
  //       // paths: ["count"],
  //     }
  //   ]
  // }
})
